F/OSS Comics

5. The Beginning of Software Engineering

Posted on Dec 11, 2022

When Software Was Part of the Hardware

Until the 1960s, software was largely treated as part of the hardware. Computers and their peripherals filled entire rooms, were expensive, and required considerable money and staff to operate. Software was not yet widely recognized as an engineering discipline in its own right.

An installer stands beside a room-sized mainframe.

"Installation done!"

A programmer holding a manual looks uncertain beside a Honeywell mainframe.
Honeywell 800 mainframe, 1959

"Now, how do I program it?"

Mathematics played a central role in early computing, so students studying mathematics often found their way into programming.

A mathematician fills a board with equations while a programmer waits beside him.

"This new computer should give us the results in no time."

People studying science or engineering also learned to program, since computers could perform calculations and experiments that had previously been done by hand. Some became so absorbed in programming that they made it their profession.

Dennis Ritchie watches a programmer working at a console in front of a mainframe.

"Isn't it more fun than math?"

Dennis Ritchie, who helped create Unix and the C programming language, studied physics and applied mathematics at university.

Margaret Hamilton and Apollo Flight Software

The story of Margaret Hamilton, who worked on the Apollo program in the 1960s, offers a glimpse of how software was developed and regarded at the time. After studying mathematics at university, she began working as a programmer at MIT to support her husband's studies.

Margaret Hamilton looks at a MIT Instrumentation Lab recruitment poster that reads "Programmers wanted" and "Math majors welcome".

"Math majors can be programmers too?"

She first developed weather prediction software with meteorologist Edward Lorenz, then worked on the SAGE air-defense project. Formal courses in computer science and software engineering were hard to find, so programmers mostly learned on the job. Software development was also not taken as seriously as the established engineering disciplines.

Margaret Hamilton gestures while explaining how early programmers learned their work.
Margaret Hamilton

"Computer science and software engineering weren't regular subjects yet. Programmers learned by doing."

After becoming an expert in systems programming, Hamilton joined MIT's Instrumentation Laboratory. There she led the Software Engineering Division, whose team developed onboard flight software for Apollo's command and lunar modules[4]. Software had initially been overlooked in Apollo's budgets, schedules, and requirements[1]. Yet it played a critical role in controlling the spacecraft and lunar lander. Hamilton sometimes brought her daughter to work on weekends as she worked to make the software more reliable.

Margaret Hamilton works at a desk while her daughter waits beside a model of the Saturn V rocket.

"Mom, when are we going home?"
"I'm done. Let's go."

By the late 1960s, the Apollo guidance and software effort had grown to hundreds of people, often summarized as roughly 400 contributors[1]. In 1969, Apollo 11 successfully landed on the Moon.

A spacecraft follows a looping route between Earth and the Moon while Margaret Hamilton celebrates below.

"Moon landing success!"

Hamilton argued that software should have the same professional standing as other engineering disciplines and helped popularize the term "software engineering." Sources differ on whether she coined the term, but she helped establish the concept[4].

Margaret Hamilton raises one finger to emphasize a new name for the field.
Margaret Hamilton

"Software Engineering!"

Women Who Led Early Programming

Many early software developers were women, a striking contrast with today's male-dominated field. Programming was often considered less important than hardware development, assigned to women, and poorly paid[2]. This helps explain why so many photographs of early computers show women working at them.

A woman works at a computer console in front of a large mainframe, with an arrow labeled Coding.

"The salary is too low for what I'm doing."

Two male hardware engineers review a large blueprint spread across a table under the label Hardware design.
Designing hardware

The six programmers originally assigned to ENIAC were all women[3].

Two women program ENIAC by connecting cables on its control panels, with one reading from a sheet of notes.

Grace Hopper and the Computer Bug

Grace Hopper held a doctorate in mathematics and became a pioneering programmer who later developed one of the earliest compilers. In 1947, she was working with the Harvard Mark II team when the machine began malfunctioning.

Grace Hopper stands with her hands on her hips beside the malfunctioning Harvard Mark II.

"Why isn't the input working?"

The team found a moth trapped in one of the machine's relays.

Grace Hopper points toward a moth caught among the Harvard Mark II's relays.

"There's a dead moth inside the relay."

They taped the moth into the logbook with the note "First actual case of bug being found." Engineers had used the word "bug" for technical faults long before this incident, but Hopper and the Mark II team helped popularize "bug" and "debugging" in computing[5].

Grace Hopper tapes the moth into the team's logbook and writes beside it.
Grace Hopper

"First actual case of bug being found."

Women played a pioneering role in early programming and helped lay the foundations of software engineering.

Margaret Hamilton stands beside a towering stack of printed Apollo flight software developed by her team.

References

  1. Her Code Got Humans on the Moon—And Invented Software Itself, wired.com
  2. Computer Programming Used To Be Women’s Work, Smithsonian Magazine
  3. How Female ENIAC Programmers Pioneered the Software Industry, Intel iQ
  4. Margaret Hamilton's Apollo Code, NASA
  5. Log Book With Computer Bug, Smithsonian National Museum of American History
  6. The Hidden Heroines of Chaos, Quanta Magazine